package com.example.leetcode.prcatice;

/**
 * 给定一个整数数组，找出总和最大的连续数列，并返回总和。
 *
 * <p>示例：
 *
 * <p>输入： [-2,1,-3,4,-1,2,1,-5,4] 输出： 6 解释： 连续子数组 [4,-1,2,1] 的和最大，为 6。
 */
public class Test1617 {
  public int maxSubArray(int[] nums) {
    int pre = 0;
    int max = nums[0];
    for (int x : nums) {
      pre = Math.max(pre + x, x);
      max = Math.max(max, pre);
    }
    return max;
  }
}

/*
int pre = 0, maxAns = nums[0];
        for (int x : nums) {
            pre = Math.max(pre + x, x);
            maxAns = Math.max(maxAns, pre);
        }
        return maxAns;

 */
class Demo1617 {
  public static void main(String[] args) {
    Test1617 t = new Test1617();
    int[] nums = {-2, 1, -3, 4, -1, 2, 1, -5, 4};
    System.out.println(t.maxSubArray(nums));
  }
}
